package main.java.maziacs.rol;

import main.java.maziacs.characters.IHero;
import main.java.maziacs.characters.Maziacs;


public class WithMaziacs extends Rol {

	public WithMaziacs(IHero hero){
		super(hero);
	}
		
		/**
		 */
		public void moveWithMaziacs(){
			//Mientras haya maziacs que ven al heroe
			while(getHero().getRol() instanceof WithMaziacs){
				//exploramos
				getHero().explore();
				//llamamos a metodo de UI para elegir acciones a realizar
				getHero().getGame().getIntUsu().chooseActionWithMaziac(getHero());
				Boolean see=false;
				//movemos maziacs que ven al heroe
				for(Maziacs m: getHero().getBoard().getMaziacs().keySet()){
					if(m.seeHero(getHero())){
						m.moveWithHero(getHero());
					}
				}
				//Luego movemos a los que no lo ven
				for(Maziacs m: getHero().getBoard().getMaziacs().keySet()){
					if(!m.seeHero(getHero()))
						m.moveWithoutHero(getHero());
				}
				//Si al final sigue habiendo maziacs que ven al heros, continuamos con el while
				for(Maziacs m: getHero().getBoard().getMaziacs().keySet()){
					if(m.seeHero(getHero())){
						see=true;
						break;
					}
				}
				//Si ya no hay maziacs que vean al heroe cambiamos el rol del heroe, 
				//con lo que salimos del bucle
				if(!see){
					getHero().setRol(new WithoutMaziacs(getHero()));
				}
			}
			
		}

}
